package com.zts.base.data;

import org.apache.ibatis.session.RowBounds;

import java.util.List;
import java.util.Map;

/**
 * Created by Zhangkh on 2017/5/31.
 */
public interface CrudMapper<T> {


    /**
     * 根据id获取单条数据
     *
     * @param id
     * @return
     */

    public T get(Long id);

    /**
     * 根据一个对象获取一组数据
     * @param entity
     * @return
     */
    public List<T> getByEntity(T entity);

    /**
     * 根据条件获取对象。
     * @param conditions
     * @return
     */
    public List<T>  getByCondition(Map<String,Object> conditions);

    /**
     * 根据一个对象，查询符合条件的数据
     *
     * @param entity
     * @return
     */
    public List<T> getList(T entity,RowBounds rowBounds);

    /**
     * 插入数据
     *
     * @param entity
     * @return
     */
    public int insert(T entity);

    /**
     * 更新数据
     *
     * @param entity
     * @return
     */
    public int update(T entity);

    /**
     * 删除数据（一般为逻辑删除，更新del_flag字段为1）
     *
     * @param entity
     * @return
     */
    public int delete(T entity);


}
